#ifndef __CW_PID_H
#define __CW_PID_H
#include "includes.h"

//PID结构体
typedef struct
{
	float Kp,Ki,Kd;//PID调节参数
	float Bias;//本次误差
	float Last_bias,Prev_bias;//上一次和上上次误差
	float Integral_bias,IntegralMAX; //积分和,积分限幅参数
	int   Dead_zone; //死区
	int	  Integral_zone; //积分分离区域
	int   Pid_out; //pid输出
}PIDDef;

extern PIDDef LspdPID;
extern PIDDef RspdPID;

extern PIDDef LposPID;
extern PIDDef RposPID;

extern PIDDef TlinePID;

//PID参数初始化
void PID_Init();
//位置PID控制器
int Position_PID(int reality,int target,PIDDef* hPID);
//速度PID控制器
int Incremental_PID(int reality,int target,PIDDef* hPID);
//PID参数设置函数
void PIDSetParam(PIDDef *hPID,float Kp,float Ki,float Kd,float Imax,int Deadzone,int Izone);

#endif
